﻿using Microsoft.AspNetCore.Mvc;
using Configuration.ServerApi.Param;
using System.Threading.Tasks;

namespace Configuration.ServerApi.Service
{
    /// <summary>
    /// IAssemblyService
    /// </summary>
    public interface IAssemblyService
    {
        /// <summary>
        /// 获取组件分类列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyClassifyList(SearchModel param);

        /// <summary>
        /// 获取组件分类详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyClassifyDetail(SearchModel param);

        /// <summary>
        /// 提交组件分类信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitFlowAssemblyClassify(UpdateModel param);

        /// <summary>
        /// 批量删除组件分类信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelFlowAssemblyClassify(UpdateModel param);

        /// <summary>
        /// 更新组件分类信息状态
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyClassifyStstus(UpdateModel param);

        /// <summary>
        /// 更新组件分类信息顺序
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyClassifySort(UpdateModel param);

        /// <summary>
        /// 获取组件配置列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyConfigList(SearchModel param);

        /// <summary>
        /// 获取组件配置详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyConfigDetail(SearchModel param);

        /// <summary>
        /// 提交组件配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitFlowAssemblyConfig(UpdateModel param);

        /// <summary>
        /// 批量删除组件配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelFlowAssemblyConfig(UpdateModel param);

        /// <summary>
        /// 更新组件配置信息状态
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyConfigStstus(UpdateModel param);

        /// <summary>
        /// 更新组件配置信息顺序
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyConfigSort(UpdateModel param);

        /// <summary>
        /// 获取组件属性配置列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyConfigAttributeList(SearchModel param);

        /// <summary>
        /// 获取组件属性配置详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyConfigAttributeDetail(SearchModel param);

        /// <summary>
        /// 提交组件属性配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitFlowAssemblyConfigAttribute(UpdateModel param);

        /// <summary>
        /// 批量删除组件属性配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelFlowAssemblyConfigAttribute(UpdateModel param);

        /// <summary>
        /// 更新组件属性配置信息状态
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyConfigAttributeStstus(UpdateModel param);

        /// <summary>
        /// 更新组件属性配置信息顺序
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateFlowAssemblyConfigAttributeSort(UpdateModel param);

        /// <summary>
        /// 获取可用组件数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> FlowAssemblyData(SearchModel param);

    }
}
